package br.com.medvagas.comum.entidade;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedNativeQueries;
import javax.persistence.NamedNativeQuery;
import javax.persistence.Table;

import br.com.medvagas.comum.enumeracao.profissional.CursoGraduacaoEnum;
import br.com.medvagas.comum.enumeracao.vaga.NivelFormacaoEnum;
import br.com.medvagas.comum.util.UtilEnum;


/**
 * The persistent class for the formacao_academica_titulacao database table.
 * 
 */
@Entity
@Table(name="formacao_academica_titulacao")
//

@NamedNativeQueries({
	@NamedNativeQuery(
		name="FormacaoAcademicaTitulacao.delete", 
		query="delete from formacao_academica_titulacao where id_formacao_academica_titulacao = :idFormacaoAcademicaTitulacao", resultClass=FormacaoAcademicaTitulacao.class)
})
public class FormacaoAcademicaTitulacao implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="id_formacao_academica_titulacao")
	private Integer idFormacaoAcademicaTitulacao;

	private String nivel;
	
	private String em;

	private String fim;

	private String inicio;

	private String instituicao;

	@Column(name="id_pais")
	private String idPais;
	private String pais;

	@Column(name="sigla_uf")
	private String siglaUf;

	@Column(name="cod_ibge")
	private String codIbge;
	private String cidade;

	//bi-directional many-to-one association to UsuarioProfissional
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_usuario_profissional", insertable=false, updatable=false)
	private UsuarioProfissional usuarioProfissional;
	@Column(name="id_usuario_profissional")
	private Integer idUsuarioProfissional;
	
    public FormacaoAcademicaTitulacao() {
    }

    public String getNivelFormatado() {
    	return UtilEnum.recuperarLabel(NivelFormacaoEnum.values(), nivel);
    }
    
    public String getEmFormatado() {
    	if (NivelFormacaoEnum.GRADUACAO.getValor().equals(nivel)) {
    		return UtilEnum.recuperarLabel(CursoGraduacaoEnum.values(), em);
    	} else {
    		return em;
    	}
    }
    
	public Integer getIdFormacaoAcademicaTitulacao() {
		return this.idFormacaoAcademicaTitulacao;
	}

	public void setIdFormacaoAcademicaTitulacao(Integer idFormacaoAcademicaTitulacao) {
		this.idFormacaoAcademicaTitulacao = idFormacaoAcademicaTitulacao;
	}

	public String getCidade() {
		return this.cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getEm() {
		return this.em;
	}

	public void setEm(String curso) {
		this.em = curso;
	}

	public String getFim() {
		return this.fim;
	}

	public void setFim(String fim) {
		this.fim = fim;
	}

	public String getInicio() {
		return this.inicio;
	}

	public void setInicio(String inicio) {
		this.inicio = inicio;
	}

	public String getInstituicao() {
		return this.instituicao;
	}

	public void setInstituicao(String instituicao) {
		this.instituicao = instituicao;
	}

	public String getPais() {
		return this.pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public UsuarioProfissional getUsuarioProfissional() {
		return this.usuarioProfissional;
	}

	public void setUsuarioProfissional(UsuarioProfissional usuarioProfissional) {
		this.usuarioProfissional = usuarioProfissional;
	}

	public String getNivel() {
		return nivel;
	}

	public void setNivel(String nivel) {
		this.nivel = nivel;
	}

	public Integer getIdUsuarioProfissional() {
		return idUsuarioProfissional;
	}

	public void setIdUsuarioProfissional(Integer idUsuarioProfissional) {
		this.idUsuarioProfissional = idUsuarioProfissional;
	}

	public String getIdPais() {
		return idPais;
	}

	public void setIdPais(String idPais) {
		this.idPais = idPais;
	}

	public String getSiglaUf() {
		return siglaUf;
	}

	public void setSiglaUf(String siglaUf) {
		this.siglaUf = siglaUf;
	}

	public String getCodIbge() {
		return codIbge;
	}

	public void setCodIbge(String codIbge) {
		this.codIbge = codIbge;
	}
	
}